import { defineStore } from 'pinia';

export const useStore = defineStore('counter', {
    // state 相当于vue组件的data，用于保存全局变量[这里的变量允许整个项目任意的文件使用]
	state: () => ({ 
        token: '', // jwt 用户登录/注册后得到的认证Token
    }),
    // actions 相当于vue组件的method，用于编写操作state中的全局变量的函数方法
	actions: {
		set_token(token) {
            // 保存token
            console.log(`set_token, ${token}`)
			this.token = token;
		},
        get_token(){
            console.log(`get_token, ${this.token}`)
            // 获取token
            return this.token;
        },
        del_token(){
            // 删除token
            return this.token;
        },
        get_user_info(){
            // 根据token获取用户的id和username
            if(this.token.length<1){
                return false;
            }
            
            let payload = JSON.parse(atob(this.token.split('.')[1]));
            // 如果载荷过期了，则不返回载荷
            let current_time = parseInt((new Date() - 0) / 1000);
            if(payload.exp < current_time){
                return false;
            }
            return payload;
        }
	},
});
